|
AT-NFC
2.1 (win)
AT-NFC kernel set
|
HAL Configuration Interface. More...
Functions | |
| KER_BOOL | hal_cfg_get_supp_app_list (KER_CTX_PARAM KER_TLV **ppSuppCandList) |
| Provides terminal supported applications list for Kernel. More... | |
| KER_TLV * | hal_cfg_get_next_supp_app (KER_CTX_PARAM const KER_TLV *pCurrSuppAID, const KER_TLV *pLastCandAddedToCL) |
| Proceed to the next supported app in the list. More... | |
| KER_RES | hal_cfg_cl_postprocess (KER_CTX_PARAM KER_TLV **ppCandidateList, const KER_TLV *pBlockedAppList, KER_BOOL bForReselect) |
| Custom candidate list postprocessing. More... | |
| KER_BYTE | hal_cfg_lang_autoselect (KER_CTX_PARAM const KER_BYTE *pbtIccSuppLang, KER_BYTE btIccSuppLangLength, KER_BYTE *pbtSelectedLang, KER_BYTE btSelectedLangSize) |
| Ckecks for match between ICC and Terminal supported languages and makes autoselection. More... | |
| KER_BOOL | hal_cfg_get_config (KER_CTX_PARAM const KER_BYTE *pbtAID, KER_INT16U usAIDLen, KER_TLV **ppConfigList) |
| Provides common terminal configuration for Kernel. More... | |
| KER_BOOL | hal_cfg_get_tran_config (KER_CTX_PARAM const KER_BYTE *pbtAID, KER_INT16U usAIDLen, const KER_TLV *pTranDataList, KER_TLV **ppConfigList) |
| Provides terminal configuration specific for AID-Transaction data combination for Kernel. More... | |
| KER_BOOL | hal_cfg_get_config_by_tag (KER_CTX_PARAM const KER_BYTE *pbtAID, KER_INT16U usAIDLen, const KER_BYTE *pbtTag, KER_BYTE btTagLen, KER_BYTE *pbtValue, KER_INT16U *pusValueLen, KER_INT16U usMaxLen) |
| Provides common terminal configuration for tag requested. More... | |
| KER_BOOL | hal_cfg_get_config_by_id (KER_CTX_PARAM const KER_BYTE *pbtAID, KER_INT16U usAIDLen, KER_INT16U usID, KER_BYTE *pbtValue, KER_INT16U *pusValueLen, KER_INT16U usMaxLen) |
| Provides terminal configuration which have no emv tag assinged by ID. More... | |
| KER_BOOL | hal_cfg_set_config_by_id (KER_CTX_PARAM KER_INT16U usID, const KER_BYTE *pbtValue, KER_INT16U usValueLen) |
| Keeps trerminal params in "scratch pad". More... | |
| KER_BOOL | hal_cfg_get_tran_config_by_id (KER_CTX_PARAM KER_TRAN *pTran, const KER_BYTE *pbtAID, KER_INT16U usAIDLen, const KER_TLV *pTranDataList, KER_INT16U usID, KER_BYTE *pbtValue, KER_INT16U *pusValueLen, KER_INT16U usMaxLen) |
| Provides terminal configuration specific for AID-Transaction data combination which have no emv tag assinged by ID. More... | |
| KER_BOOL | hal_cfg_get_custom_tag_by_id (KER_CTX_PARAM KER_INT16U usID, KER_BYTE *pbtValue, KER_INT16U *pusValueLen, KER_INT16U usMaxLen) |
| Remapp terminal configuration id to custom tag. More... | |
| KER_INT16U | hal_cfg_get_id_by_custom_tag (KER_CTX_PARAM const KER_BYTE *pbtTag, KER_INT16U usTagLen) |
| Remapp custom tag to configuration ID. More... | |
| KER_BOOL | hal_cfg_get_is_tran_cash (KER_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for cash tran (cash or cash disbursement at POS) More... | |
| KER_BOOL | hal_cfg_get_is_tran_sale (KER_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for goods and services. More... | |
| KER_BOOL | hal_cfg_get_is_tran_cashback (KER_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for cashback. More... | |
| KER_BOOL | hal_cfg_get_is_tran_manual_cash (KER_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for manual cash tran (0x17) More... | |
| KER_BOOL | hal_cfg_get_is_tran_refund (KER_CTX_PARAM KER_BYTE btTranType) |
| Check transaction type (9C) for refund (0x20) More... | |
| KER_BOOL | hal_cfg_get_is_approved_online (KER_CTX_PARAM const KER_BYTE *pbtARC, KER_INT16U usARCLen) |
| Check online result by ARC. More... | |
| KER_BOOL | hal_cfg_get_is_referral_online (KER_CTX_PARAM const KER_BYTE *pbtARC, KER_INT16U usARCLen) |
| Check online result by ARC (for referral request) More... | |
| KER_BOOL | hal_cfg_add_tran_to_term_log_file (KER_CTX_PARAM const KER_BYTE *pbtTLV, KER_INT16U usTLVLen) |
| Add to transaction log to prevent split sales. More... | |
| KER_BOOL | hal_cfg_get_tran_amount_from_term_log_file (KER_CTX_PARAM const KER_BYTE *pbtTLV, KER_INT16U usTLVLen, KER_INT32U *pulPrevTranAmountHI, KER_INT32U *pulPrevTranAmountLO) |
| Add to transaction log to prevent split sales. More... | |
| KER_BOOL | hal_cfg_check_exception_file (KER_CTX_PARAM const KER_BYTE *pbtTLV, KER_INT16U usTLVLen) |
| Checks if card appears in terminal exception file (EMV Book 4 6.3.5) More... | |
| #define | KER_IS_CASH_TRAN(TranType) (hal_cfg_get_is_tran_cash(KER_CTX TranType)) |
| #define | KER_IS_SALE_TRAN(TranType) (hal_cfg_get_is_tran_sale(KER_CTX TranType)) |
| #define | KER_IS_CASHBACK_TRAN(TranType) (hal_cfg_get_is_tran_cashback(KER_CTX TranType)) |
| #define | KER_IS_MANUAL_CASH_TRAN(TranType) (hal_cfg_get_is_tran_manual_cash(KER_CTX TranType)) |
| #define | KER_IS_REFUND_TRAN(TranType) (hal_cfg_get_is_tran_refund(KER_CTX TranType)) |
| #define | KER_IS_APPROVED_ONLINE(Arc, ArcLen) (hal_cfg_get_is_approved_online(KER_CTX Arc, ArcLen)) |
| #define | KER_IS_REFERRAL_ONLINE(Arc, ArcLen) (hal_cfg_get_is_referral_online(KER_CTX Arc, ArcLen)) |
HAL Configuration Interface.
This functions should be implemented by terminal application
| #define KER_CFG_COMPARE_TRACK2_MASK_EXP_DATE 0x02 |
\ ( )
| #define KER_CFG_COMPARE_TRACK2_MASK_PAN 0x01 |
\ ( )
| #define KER_CFG_ID_AEC 0x0212 |
Set this parameter (Allow Expired Card) to setup data expired card acceptance (0 - disable, 1 - enable) Usage: Contact, C-2, C-3, C-4, C-7, MIR Optional, 1 bytes length binary value
| #define KER_CFG_ID_APP_CONFIG_ENTRY_ID 0x0106 |
Get this parameter to obtain app configuration entry ID for partucular AIDs. Usage: Contact, HAL This is optional, 1 byte length value
| #define KER_CFG_ID_ASI 0x0201 |
Set this parameter as ASI (application selection indicator) for appropriate supported AID. Usage: Contact, HAL This is optional, 1 byte length value. Set it to nonzero value to indicate partial AID match support.
| #define KER_CFG_ID_CARDHOLDER_CONFIRMATION_SUPP 0x0301 |
Set this parameter to nonzero value to allow add candidates that requires cardholder confirmation. Usage: Contact, HAL Zero value (default) means that such applications will be removed from candidate list. This is optional, 1 byte length value.
| #define KER_CFG_ID_CDA_MODE 0x020A |
Set this parameter to define CDA type Usage: Contact Optional, 1byte length binary value. Value ARQC GAC2/TC 0x01 + + (default) 0x02 + - 0x03 - - 0x04 - +
| #define KER_CFG_ID_COMPARE_TRACK2_MASK 0x0101 |
Set this parameter to force compare track2 (tag 57) value against PAN (tag 5A) and expiry date (tag 5F24). (mandatory for MasterCard contact cards) Usage: Contact, HAL This is 1 byte length bitmask Set bit KER_CFG_COMPARE_TRACK2_MASK_PAN to force compare track2 and PAN (abort transaction in case of mismatch) Set bit KER_CFG_COMPARE_TRACK2_MASK_EXP_DATE to force compare track2 and expiry date (abort transaction in case of mismatch) Other bits - rfu
| #define KER_CFG_ID_DEF_APP_LABEL 0x0202 |
Set this parameter to use as application default label, if tag 50 missed. Usage: Contact, HAL Optional, up to 16 bytes length binary value. Enable application default label usage by KER_CFG_ID_DEF_APP_LABEL_USAGE
| #define KER_CFG_ID_DEF_APP_LABEL_USAGE 0x0303 |
Set this parameter to enable application default label usage by setting KER_CFG_ID_DEF_APP_LABEL param Usage: Contact, HAL This is optional, 1 byte length value. Set it to nonzero value to indicate default application labels support.
| #define KER_CFG_ID_DEFAULT_DDOL 0x0209 |
Set this parameter to define Default DDOL. Usage: Contact, HAL Optional, variable length binary value.
| #define KER_CFG_ID_DEFAULT_TDOL 0x0208 |
Set this parameter to define Default TDOL. Usage: Contact, HAL Optional, variable length binary value.
| #define KER_CFG_ID_DISABLE_PSE 0x0107 |
Set this parameter to disable PSE for cl build Usage: Contact This is optional, 1 byte length value (0 means PSE enabled, other - disabled)
| #define KER_CFG_ID_FORCE_FIRST_APP_SELECTION 0x0302 |
Set this parameter to force first application selection from candidate list despite of confirm required bit in API. Usage: Contact, HAL This is optional, 1 byte length value. Set it to nonzero value to force first application selection from candidate list
| #define KER_CFG_ID_HIGH_APP_SUPP_VER_RANGE 0x0204 |
Set this parameter to define highest value for application supported version range. Usage: Contact, C-2, C-4, MIR, HAL Optional, 2 bytes length binary value (most significant byte first). Use in conjunction with KER_CFG_ID_LOW_APP_SUPP_VER_RANGE
| #define KER_CFG_ID_ISS_SCRIPTS_SIZE_LIMIT 0x0306 |
Provides a script size limit Defines limit in bytes, 0-9999. Usage: Contact, C-3, HAL Optional, (0 - unlimited, by default)
| #define KER_CFG_ID_LOW_APP_SUPP_VER_RANGE 0x0203 |
Set this parameter to define lowest value for application supported version range. Usage: Contact, C-2, C-4, MIR, HAL Optional, 2 bytes length binary value (most significant byte first). Use in conjunction with KER_CFG_ID_HIGH_APP_SUPP_VER_RANGE
| #define KER_CFG_ID_OFFLINE_MODE 0x020B |
Set this parameter to define Offline processing type Usage: Contact, HAL Optional, 1byte length binary value.
| #define KER_CFG_ID_OVERRIDE_8A 0x0108 |
Set this parameter to override ARC (tag 8A) value, used to obtain host transaction disposition. Usage: Contact This is optional, 1 byte length value
| #define KER_CFG_ID_OVERRIDE_9C_FOR_CVM 0x0102 |
Set this parameter to override transaction type (tag 9C) value, used during cardholder verification processing. Usage: Contact, C-2, C-4, MIR, HAL This is optional, 1 byte length value
| #define KER_CFG_ID_OVERRIDE_9C_FOR_RESTR 0x0104 |
Set this parameter to override transaction type (tag 9C) value, used during processing restrictions. Usage: Contact, C-2, C-3, C-4, MIR, HAL This is optional, 1 byte length value
| #define KER_CFG_ID_OVERRIDE_9C_PER_AID 0x0105 |
Set this parameter to override transaction type (tag 9C) value for partucular AIDs. Usage: Contact, Entry Point, HAL This is optional, 1 byte length value
| #define KER_CFG_ID_PIN_ENTRY_BYPASS 0x0305 |
Set this parameter to enable pin entry bypass. Otherwise pin entry bypass will be trated as failure Usage: Contact, HAL This is optional, 1 byte length value. Set it to nonzero value to indicate pin entry bypass support
| #define KER_CFG_ID_SCRIPT_RESULTS 0x0103 |
Script results maintained by kernel. Usage: Contact, HAL Use this ID just for remapping to some custom tags in hal_cfg_get_custom_tag_by_id and hal_cfg_get_id_by_custom_tag.
| #define KER_CFG_ID_SKIP_PIN_GET_DATA 0x020C |
Set this parameter to skip GET_DATA call for pin try count. Usage: Contact, HAL Optional, 1byte length binary value. (0 - call GET_DATA, otherwise - skip)
| #define KER_CFG_ID_TAC_DEFAULT 0x0207 |
Set this parameter to define TAC-Default. Usage: Contact, C-2, C-4, MIR, HAL Optional, 5 bytes length binary value.
| #define KER_CFG_ID_TAC_DENIAL 0x0205 |
Set this parameter to define TAC-Denial. Usage: Contact, C-2, C-4, MIR, HAL Optional, 5 bytes length binary value.
| #define KER_CFG_ID_TAC_ONLINE 0x0206 |
Set this parameter to define TAC-Online. Usage: Contact, C-2, C-4, MIR, HAL Optional, 5 bytes length binary value.
| #define KER_CFG_ID_TAED 0x0213 |
Set this parameter (Treshold Application Expiration Date) to setup appropriate treshold Usage: Contact, C-2, C-3, C-4, C-7, MIR Optional, 3 bytes length (YYMMDD) binary value
| #define KER_CFG_ID_TERM_RAND_SEL_MAX_TARGET_PERCENTAGE 0x0210 |
Maximum Target Percentage to be Used for Biased Random Selection (0-99) not less than KER_CFG_ID_TERM_RAND_SEL_TARGET_PERCENTAGE Usage: Contact, HAL Optional, 0 by default.
| #define KER_CFG_ID_TERM_RAND_SEL_TARGET_PERCENTAGE 0x020F |
Target Percentage to be Used for Random Selection (0-99) Usage: Contact, HAL Optional, 0 by default.
| #define KER_CFG_ID_TERM_RAND_SEL_TRESHOLD 0x0211 |
Threshold Value for Biased Random Selection (less than terminal floor limit 9F1B) Usage: Contact, HAL Optional, 4bytes length binary value (most significant byte first).
| #define KER_CFG_ID_TERM_TRAN_LOG_DATA 0x020D |
Set this parameter to define transaction tags, nessesary for terminal transaction log Usage: Contact, HAL Empty if terminal transaction log not configured.
| #define KER_CFG_ID_TERM_TRAN_LOG_INDEX 0x020E |
Set this parameter to define transaction tags, used as index, to search in transaction log Usage: Contact, HAL Empty if terminal transaction log not configured.
| #define KER_CFG_ID_TRAN_CHAINING_OPTIONS 0x0304 |
Set this parameter to enable transaction chaining. Usage: Contact, HAL This is optional, 1 byte length value: KER_CFG_TR_CHAINING_FULL_RESTART (default) - full transaction restart - mode used for EMVCo approval KER_CFG_TR_CHAINING_REUSE_FINAL_CL - skip cl build - use final cl prov prev transaction KER_CFG_TR_CHAINING_REUSE_INITIAL_CL - skip cl build - use initial cl prov prev transaction
| #define KER_IS_APPROVED_ONLINE | ( | Arc, | |
| ArcLen | |||
| ) | (hal_cfg_get_is_approved_online(KER_CTX Arc, ArcLen)) |
Check online result by ARC
| #define KER_IS_CASH_TRAN | ( | TranType | ) | (hal_cfg_get_is_tran_cash(KER_CTX TranType)) |
Check transaction type (9C) for cash tran (cash or cash disbursement at POS)
| #define KER_IS_CASHBACK_TRAN | ( | TranType | ) | (hal_cfg_get_is_tran_cashback(KER_CTX TranType)) |
Check transaction type (9C) for cashback
| #define KER_IS_MANUAL_CASH_TRAN | ( | TranType | ) | (hal_cfg_get_is_tran_manual_cash(KER_CTX TranType)) |
Check transaction type (9C) for manual cash
| #define KER_IS_REFERRAL_ONLINE | ( | Arc, | |
| ArcLen | |||
| ) | (hal_cfg_get_is_referral_online(KER_CTX Arc, ArcLen)) |
Check online result by ARC
| #define KER_IS_REFUND_TRAN | ( | TranType | ) | (hal_cfg_get_is_tran_refund(KER_CTX TranType)) |
Check transaction type (9C) for refund
| #define KER_IS_SALE_TRAN | ( | TranType | ) | (hal_cfg_get_is_tran_sale(KER_CTX TranType)) |
Check transaction type (9C) for goods and services
| KER_BOOL hal_cfg_add_tran_to_term_log_file | ( | KER_CTX_PARAM const KER_BYTE * | pbtTLV, |
| KER_INT16U | usTLVLen | ||
| ) |
Add to transaction log to prevent split sales.
| [in] | pbtTLV | TLV buffer with tran data (at least tags 5A, 5F34, 9A, 81), tag list set by KER_CFG_ID_TERM_TRAN_LOG_DATA |
| [in] | usTLVLen | the size of pbtTLV |
This function is used to prevent split sales
| KER_BOOL hal_cfg_check_exception_file | ( | KER_CTX_PARAM const KER_BYTE * | pbtTLV, |
| KER_INT16U | usTLVLen | ||
| ) |
Checks if card appears in terminal exception file (EMV Book 4 6.3.5)
| [in] | pbtTLV | TLV buffer with card data (tags 5A, 5F34) |
| [in] | usTLVLen | the size of pbtTLV |
This function is used to support terminal exception file
| KER_RES hal_cfg_cl_postprocess | ( | KER_CTX_PARAM KER_TLV ** | ppCandidateList, |
| const KER_TLV * | pBlockedAppList, | ||
| KER_BOOL | bForReselect | ||
| ) |
Custom candidate list postprocessing.
| [in,out] | ppCandidateList | pointer to Candidate list built |
| [in] | pBlockedAppList | blocked app list (for custom scheme processing) |
| [in] | bForReselect | Pass KER_TRUE if this function called after removing previosly selected app from cl. In that case you may skip secondary aids processing as it was already performed on previous stage. Pass KER_FALSE if this function called after initial call to kerBuildCL |
Terminal should implement this function to optionally support custom cl postprocessing (secondary AIDs functionality for PSE bult list (see NDC specification for details), MIR cobranding rules, MC blocked app processing, etc...) Candidate list built by PSE contains 4F tags with AID value, candidate list built by app list selection contains 84 tags with AID value.
| KER_BOOL hal_cfg_get_config | ( | KER_CTX_PARAM const KER_BYTE * | pbtAID, |
| KER_INT16U | usAIDLen, | ||
| KER_TLV ** | ppConfigList | ||
| ) |
Provides common terminal configuration for Kernel.
| [in] | pbtAID | app aid (optional, set KER_NULL to request general terminal config) |
| [in] | usAIDLen | The btAID length |
| [out] | ppConfigList | Pointer to allocated TLV container list with terminal configuration |
Terminal should use kerContTlvCreateByTag or kerContTlvCreateByTLV to create tlv container list
Pass pbtAID parameter to obtain application related configuration in addition to general terminal configuration. Actual parameters should be placed last in list.
| KER_BOOL hal_cfg_get_config_by_id | ( | KER_CTX_PARAM const KER_BYTE * | pbtAID, |
| KER_INT16U | usAIDLen, | ||
| KER_INT16U | usID, | ||
| KER_BYTE * | pbtValue, | ||
| KER_INT16U * | pusValueLen, | ||
| KER_INT16U | usMaxLen | ||
| ) |
Provides terminal configuration which have no emv tag assinged by ID.
| [in] | pbtAID | app aid (optional, set KER_NULL to request general terminal config) |
| [in] | usAIDLen | The btAID length |
| [in] | usID | requested value ID |
| [out] | pbtValue | Buffer to obtain requested value (optional, set KER_NULL if you don't need it) |
| [out] | pusValueLen | Buffer to obtain requested value length |
| [in] | usMaxLen | Size of pbtValue buffer |
This function is used to request terminal configuration which have no emv tag assinged by ID.
Pass pbtAID parameter to obtain application related configuration. If appropriate parameter not found in application releated configuration - take it from general terminal configuration.
Pass pbtValue as KER_NULL to obtain estimated buffer length through pusValueLen
| KER_BOOL hal_cfg_get_config_by_tag | ( | KER_CTX_PARAM const KER_BYTE * | pbtAID, |
| KER_INT16U | usAIDLen, | ||
| const KER_BYTE * | pbtTag, | ||
| KER_BYTE | btTagLen, | ||
| KER_BYTE * | pbtValue, | ||
| KER_INT16U * | pusValueLen, | ||
| KER_INT16U | usMaxLen | ||
| ) |
Provides common terminal configuration for tag requested.
| [in] | pbtAID | app aid (optional, set KER_NULL to request general terminal config) |
| [in] | usAIDLen | The btAID length |
| [in] | pbtTag | requested tag value |
| [in] | btTagLen | pbtTag value length |
| [out] | pbtValue | Buffer to obtain requested tag value (optional, set KER_NULL if you don't need it) |
| [out] | pusValueLen | Buffer to obtain requested tag value length |
| [in] | usMaxLen | Size of pbtValue buffer |
This function is used (at the moment) during cl build for additional terminal capabilities request
Pass pbtAID parameter to obtain application related configuration. If appropriate parameter not found in application releated configuration - take it from general terminal configuration.
Pass pbtValue as KER_NULL to obtain estimated buffer length through pusValueLen
| KER_BOOL hal_cfg_get_custom_tag_by_id | ( | KER_CTX_PARAM KER_INT16U | usID, |
| KER_BYTE * | pbtValue, | ||
| KER_INT16U * | pusValueLen, | ||
| KER_INT16U | usMaxLen | ||
| ) |
Remapp terminal configuration id to custom tag.
| [in] | usID | requested value ID |
| [out] | pbtValue | Buffer to obtain appropriate tag value (optional, set KER_NULL if you don't need it) |
| [out] | pusValueLen | Buffer to obtain requested tag value length |
| [in] | usMaxLen | Size of pbtValue buffer |
This function is used for remapping terminal configuration which have no emv tag assinged to configurable custom tags.
Pass pbtValue as KER_NULL to obtain estimated buffer length through pusValueLen
| KER_INT16U hal_cfg_get_id_by_custom_tag | ( | KER_CTX_PARAM const KER_BYTE * | pbtTag, |
| KER_INT16U | usTagLen | ||
| ) |
Remapp custom tag to configuration ID.
| [in] | pbtTag | Buffer to obtain appropriate tag value (optional, set KER_NULL if you don't need it) |
| [in] | usTagLen | Buffer to obtain requested tag value length |
This function is used for remapping custom tags to terminal configuration which have no emv tag assinged.
| KER_BOOL hal_cfg_get_is_approved_online | ( | KER_CTX_PARAM const KER_BYTE * | pbtARC, |
| KER_INT16U | usARCLen | ||
| ) |
| KER_BOOL hal_cfg_get_is_referral_online | ( | KER_CTX_PARAM const KER_BYTE * | pbtARC, |
| KER_INT16U | usARCLen | ||
| ) |
| KER_BOOL hal_cfg_get_is_tran_cash | ( | KER_CTX_PARAM KER_BYTE | btTranType | ) |
| KER_BOOL hal_cfg_get_is_tran_cashback | ( | KER_CTX_PARAM KER_BYTE | btTranType | ) |
| KER_BOOL hal_cfg_get_is_tran_manual_cash | ( | KER_CTX_PARAM KER_BYTE | btTranType | ) |
| KER_BOOL hal_cfg_get_is_tran_refund | ( | KER_CTX_PARAM KER_BYTE | btTranType | ) |
| KER_BOOL hal_cfg_get_is_tran_sale | ( | KER_CTX_PARAM KER_BYTE | btTranType | ) |
| KER_TLV* hal_cfg_get_next_supp_app | ( | KER_CTX_PARAM const KER_TLV * | pCurrSuppAID, |
| const KER_TLV * | pLastCandAddedToCL | ||
| ) |
Proceed to the next supported app in the list.
| [in] | pCurrSuppAID | Pointer to just processed supported candidate (9F06) from supported aids list, returned by hal_cfg_get_supp_app_list. |
| [in] | pLastCandAddedToCL | Pointer to last candidate added to cl (9F06) from supported aids list, returned by hal_cfg_get_supp_app_list. |
Terminal should override this macro to optionally support secondary AIDs functionality (see NDC specification for details) If Secondary AIDs not supported just return next candidate after pCurrSuppAID in supported aids list
| KER_BOOL hal_cfg_get_supp_app_list | ( | KER_CTX_PARAM KER_TLV ** | ppSuppCandList | ) |
Provides terminal supported applications list for Kernel.
| [out] | ppSuppCandList | Pointer to allocated list with candidates, supported by Terminal. |
Terminal should allocate tlv container list one per each AID supported and pass it to the Kernel. Each cantainer should contain 9F06 as supported aid and optional ASI value (1 byte non-zero for partial match allowed)
| KER_BOOL hal_cfg_get_tran_amount_from_term_log_file | ( | KER_CTX_PARAM const KER_BYTE * | pbtTLV, |
| KER_INT16U | usTLVLen, | ||
| KER_INT32U * | pulPrevTranAmountHI, | ||
| KER_INT32U * | pulPrevTranAmountLO | ||
| ) |
Add to transaction log to prevent split sales.
| [in] | pbtTLV | TLV buffer with tran data (at least tags 5A, 5F34, 9A, 81), tag list set by KER_CFG_ID_TERM_TRAN_LOG_DATA |
| [in] | usTLVLen | the size of pbtTLV |
| [out] | pulPrevTranAmountHI | previous transaction amount from terminal log file high 4 bytes |
| [out] | pulPrevTranAmountLO | previous transaction amount from terminal log file low 4 bytes |
This function is used to prevent split sales
| KER_BOOL hal_cfg_get_tran_config | ( | KER_CTX_PARAM const KER_BYTE * | pbtAID, |
| KER_INT16U | usAIDLen, | ||
| const KER_TLV * | pTranDataList, | ||
| KER_TLV ** | ppConfigList | ||
| ) |
Provides terminal configuration specific for AID-Transaction data combination for Kernel.
| [in] | pbtAID | app aid (optional, set KER_NULL to request general terminal config) |
| [in] | usAIDLen | The btAID length |
| [in] | pTranDataList | Transaction data passed to kernel |
| [out] | ppConfigList | Pointer to allocated TLV container list with terminal configuration |
Terminal should use kerContTlvCreateByTag or kerContTlvCreateByTLV to create tlv container list
Pass pbtAID parameter to obtain application-transaction combination related configuration. Actual parameters should be placed last in list.
| KER_BOOL hal_cfg_get_tran_config_by_id | ( | KER_CTX_PARAM KER_TRAN * | pTran, |
| const KER_BYTE * | pbtAID, | ||
| KER_INT16U | usAIDLen, | ||
| const KER_TLV * | pTranDataList, | ||
| KER_INT16U | usID, | ||
| KER_BYTE * | pbtValue, | ||
| KER_INT16U * | pusValueLen, | ||
| KER_INT16U | usMaxLen | ||
| ) |
Provides terminal configuration specific for AID-Transaction data combination which have no emv tag assinged by ID.
| [in] | pTran | Transaction handle (optional, set KER_NULL if you don't need to obtain transaction params to define parameter localtion) |
| [in] | pbtAID | app aid (optional, set KER_NULL to request general terminal config) |
| [in] | usAIDLen | The btAID length |
| [in] | pTranDataList | Transaction data passed to kernel |
| [in] | usID | requested value ID |
| [out] | pbtValue | Buffer to obtain requested tag value (optional, set KER_NULL if you don't need it) |
| [out] | pusValueLen | Buffer to obtain requested tag value length |
| [in] | usMaxLen | Size of pbtValue buffer |
This function is used to request terminal configuration which have no emv tag assinged by ID.
Pass pbtAID parameter to obtain application related configuration. If appropriate parameter not found in application releated configuration - take it from general terminal configuration.
Pass pbtValue as KER_NULL to obtain estimated buffer length through pusValueLen
| KER_BYTE hal_cfg_lang_autoselect | ( | KER_CTX_PARAM const KER_BYTE * | pbtIccSuppLang, |
| KER_BYTE | btIccSuppLangLength, | ||
| KER_BYTE * | pbtSelectedLang, | ||
| KER_BYTE | btSelectedLangSize | ||
| ) |
Ckecks for match between ICC and Terminal supported languages and makes autoselection.
| [in] | pbtIccSuppLang | Buffer with languages, supported by ICC in priority order (2 bytes per lang) |
| [in] | btIccSuppLangLength | Length of pbtIccSuppLang. |
| [out] | pbtSelectedLang | Buffer to obtain autoselected lang (2 bytes expected). |
| [in] | btSelectedLangSize | Size of pbtSelectedLang. |
| KER_BOOL hal_cfg_set_config_by_id | ( | KER_CTX_PARAM KER_INT16U | usID, |
| const KER_BYTE * | pbtValue, | ||
| KER_INT16U | usValueLen | ||
| ) |
Keeps trerminal params in "scratch pad".
| [in] | usID | value ID to set |
| [in] | pbtValue | Value to set |
| [in] | usValueLen | value length |
This function is used to update terminal configuration which has no emv tag assinged by ID.
Pass pbtAID parameter to update application related configuration.